import os


def find_matching_items(root_dir, blacklist):
    """
    在指定根目录下查找名称匹配黑名单中任意字符串的文件或文件夹，并打印其路径。

    参数:
    root_dir (str): 要检查的根目录路径。
    blacklist (list): 包含要匹配的黑名单字符串的列表。
    """
    try:
        # 遍历根目录及其所有子目录
        for dirpath, dirnames, filenames in os.walk(root_dir):
            # 检查文件夹名称
            for dirname in dirnames:
                for bad_str in blacklist:
                    if bad_str.lower() in dirname.lower():
                        print(os.path.join(dirpath, dirname))  # 打印文件夹路径
                        break

            # 检查文件名称
            for filename in filenames:
                for bad_str in blacklist:
                    if bad_str.lower() in filename.lower():
                        print(os.path.join(dirpath, filename))  # 打印文件路径
                        break
    except PermissionError:
        print(f"Error: Permission denied when accessing {root_dir}")
    except FileNotFoundError:
        print(f"Error: The directory {root_dir} does not exist.")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")


# 定义要检查的U盘根目录和黑名单
u_disk_root = '/home/adt'
blacklist = ['装备', '军用', '军事', '兵器', '兵装', '自主驾驶', '1862', '1865',
             '两栖', 'tms', '秘密', '集群', '低空', 'WRC', '无人车', '重无', '协同', '轻型', '防雷车',
             '涉密', '装甲', '内部', '协议', '秘密', '军品', '轻型', '武器', '内部', '火力', '部队', '指控', '打击',
             '军', '突击', '侦打']

# 调用函数进行文件/文件夹检查
find_matching_items(u_disk_root, blacklist)
